package ru.kreda.webapp.client.gin;

import com.google.gwt.activity.shared.Activity;
import com.google.gwt.activity.shared.ActivityMapper;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.inject.client.GinModules;
import com.google.gwt.inject.client.Ginjector;
import com.google.gwt.place.shared.Place;
import com.google.gwt.place.shared.PlaceController;

/**
 * GIN injector для приложения.
 */
@GinModules(AppGinModule.class)
public interface AppGinjector extends Ginjector {

	/**
	 * Возвращает основной маппер {@link Place} на {@link Activity}
	 */
	ActivityMapper getActivityMapper();

	/**
	 * Возвращает контроллер навигации
	 */
	PlaceController getPlaceController();

	/**
	 * Возвращает шину сообщений приложения
	 */
	EventBus getEventBus();

}
